package com.wkh.project.domain.repository;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.wkh.project.domain.model.entity.MonitorDataEntity;
import com.wkh.project.domain.model.entity.MonitorDataMapEntity;
import com.wkh.project.domain.model.entity.MonitorFlowDesignerEntity;
import com.wkh.project.domain.model.valobj.GatherNodeExpressionVO;
import com.wkh.project.domain.model.valobj.MonitorTreeConfigVO;

import java.util.List;

/**
 * @author wangkehua
 */
public interface IMonitorRepository {
    /**
     * 查询监控节点表达式
     * @param systemName
     * @param className
     * @param methodName
     * @return
     */
    List<GatherNodeExpressionVO> queryGatherNodeExpressionVO(String systemName, String className, String methodName) throws JsonProcessingException;

    /**
     * 查询监控节点名称
     * @param monitorId
     * @return
     */
    String queryMonitoryNameByMonitoryId(String monitorId);

    /**
     * 保存监控数据
     * @param monitorDataEntity
     */
    void saveMonitoryData(MonitorDataEntity monitorDataEntity);

    /**
     * 查询监控数据
     * @return
     */
    List<MonitorDataMapEntity> queryMonitorDataMapEntityList();


    MonitorTreeConfigVO queryMonitorFlowData(String monitorId);

    List<MonitorDataEntity> queryMonitorDataEntityList(MonitorDataEntity monitorDataEntity);

    /**
     * 修改监控流程数据
     * @param monitorFlowDesignerEntity
     */
    void updateMonitorFlowDesigner(MonitorFlowDesignerEntity monitorFlowDesignerEntity);
}
